package cn.tedu.sims.mapper;

import cn.tedu.sims.pojo.entity.User;
import cn.tedu.sims.pojo.vo.UserListItemVO;
import cn.tedu.sims.pojo.vo.UserLoginByUserNameAndRoleVO;
import cn.tedu.sims.pojo.vo.UserLoginInfoVO;
import cn.tedu.sims.pojo.vo.UserStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserMapper {
    /**
     * 添加用户
     * @param user
     * @return 影响行数
     */
    int insert(User user);
    /**
     * 查询名字是否重复
     * @param username
     * @return 查询数量
     */
    int countByUserName(String username);
    /**
     * 查询所有用户数据
     * @return
     */
    List<UserListItemVO> list();
    /**
     * 通过邮箱查询
     * @param email
     */
    UserLoginInfoVO getByEmail(String email);
    /**
     * 通过手机号查询
     * @param phone
     */
    UserLoginInfoVO getByPhone(Long phone);

    /**
     * 查询登陆信息
     * @param username
     * @return 数据
     */
    UserLoginInfoVO getLoginInfoByUsername(String username);
    /**
     * 查询是否有存在内部单位
     * @param id
     * @return
     */
    int countByUnit(Long id);
    /**
     * 根据手机号查询用户名和角色名
     * @param phone
     * @return
     */
    UserLoginByUserNameAndRoleVO selectByPhone(Long phone);
    /**
     * 根据邮箱查询用户名和角色名
     * @param email
     * @return
     */
    UserLoginByUserNameAndRoleVO selectByEmail(String email);

    /**
     * 根据用户名查询用户名和角色名
     * @param username
     * @return
     */
    UserLoginByUserNameAndRoleVO selectByUserName(String username);
    //通过手机号统计
    int countByPhone(Long phone);
}
